package com.lzy.mall.product.service.impl;

import cn.hutool.core.collection.CollUtil;
import com.lzy.mall.product.entity.PmsProductAttrValue;
import com.lzy.mall.product.dao.PmsProductAttrValueDao;
import com.lzy.mall.product.service.PmsProductAttrValueService;
import org.springframework.stereotype.Service;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;

import java.util.List;
import java.util.stream.Collectors;


/**
 * spu属性值(PmsProductAttrValue)表服务实现类
 *
 * @author lzy
 * @since 2021-08-25 11:41:17
 */
@Service
@RequiredArgsConstructor(onConstructor_ = {@Autowired})
public class PmsProductAttrValueServiceImpl implements PmsProductAttrValueService {
    private final PmsProductAttrValueDao pmsProductAttrValueDao;

    @Override
    public List<PmsProductAttrValue> baseAttrlistforspu(Long spuId) {
        List<PmsProductAttrValue> select = pmsProductAttrValueDao.createLambdaQuery()
                .andEq(PmsProductAttrValue::getSpuId, spuId)
                .select();
        return select;
    }

    @Override
    public void updateSpuAttr(Long spuId, List<PmsProductAttrValue> entities) {
        pmsProductAttrValueDao.createLambdaQuery()
                .andEq(PmsProductAttrValue::getSpuId,spuId)
                .delete();
        List<PmsProductAttrValue> collect = entities.stream().map(item -> {
            item.setSpuId(spuId);
            return item;
        }).collect(Collectors.toList());
        pmsProductAttrValueDao.insertBatch(collect);

    }

    @Override
    public void saveBatch(List<PmsProductAttrValue> attrValues) {
        if (CollUtil.isEmpty(attrValues)){
            //TODO 异常
        }
        pmsProductAttrValueDao.insertBatch(attrValues);
    }
}
